iT邦幫忙

2024 iThome 鐵人賽

DAY 10
0

故障排除

使用乾跑來測試

Turborepo 提供了一個 --dry 標誌,可以用來預覽如果執行某個任務會發生什麼,而實際上不執行它。這對於在不確定你正在運行哪些任務時,調試緩存問題非常有用。

更多詳細信息,請參考 --dry API 文檔。

使用運行摘要

Turborepo 提供了 --summarize 標誌,可以用來獲得任務所有輸入、輸出等的概覽。比較兩個摘要將顯示為什麼兩個任務的哈希不同。這對於以下情況很有用:

  • 調試輸入:Turborepo 的一個任務有許多輸入。如果一個任務在你期望它命中緩存時錯過了緩存,你可以使用運行摘要來檢查哪些輸入與你的預期不同。
  • 調試輸出:如果緩存命中沒有恢復你期望的文件,運行摘要可以幫助你了解哪些輸出正從緩存中恢復。

關閉緩存

有時候,你可能不想將任務的輸出寫入緩存。可以使用 "cache": false 永久設置某個任務,或使用 --no-cache 標誌來對整個運行進行設置。

覆寫緩存

如果你想強制 Turborepo 重新執行已經緩存的任務,使用 --force 標誌。注意,這會禁用讀取緩存,而不是寫入緩存。

緩存任務比執行任務慢

創建一些情況下,緩存結果可能比不緩存還要慢。這些案例很少見,但包括以下幾個例子:

  • 執行極快的任務:如果一個任務的執行速度快於到遠程緩存的網絡往返,你應該考慮不緩存該任務。
  • 輸出資產巨大的任務:可能創建一個如完整 Docker 容器那樣大的工件,其上傳或下載時間超過重新生成它的時間。在這些情況下,你應該考慮不緩存該任務。
  • 具有自身緩存的腳本:一些任務具有自己的內部緩存行為。在這些情況下,配置可能會迅速變得複雜,以使 Turborepo 的緩存和應用緩存協同工作。

雖然這些情況很少見,但確保測試你的項目行為,以確定在特定地方禁用緩存是否提供了性能上的好處。


上一篇
Turborepo cache 機制
下一篇
Turborepo cache 機制
系列文
讓我們一起與turboRepo共舞13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言